from typing import Any, List, Dict

from sqlalchemy import inspect


class InspectDict:
    def to_dict(obj: Any, keys: List[str]) -> Dict:
        """
        将 SQLAlchemy 对象转换为字典，仅包括指定的键。

        :param obj: 要转换的 SQLAlchemy 对象。
        :param keys: 要包含在字典中的属性键列表。
        :return: 一个包含指定键及其相应值的字典。
        """
        return {c.key: getattr(obj, c.key) for c in inspect(obj).mapper.column_attrs if c.key not in keys}
